#ifndef PRIVATEDATA_H
#define PRIVATEDATA_H

#include <qreadwritelock.h>
#include <qmutex.h>
#include "signaldata.h"
#include <qvector.h>

/**
 * @brief The PrivateData class     класс для хранения данных (точек)
 */
class PrivateData
{
public:
    explicit PrivateData(int number = 0);
    /**
     * @brief m_lock                замок на чтение/запись основных точек m_value для потоков
     */
    QReadWriteLock m_lock;
    /**
     * @brief m_values              вектор с основными точками
     */
    QVector<QPointF> m_values;

    /**
     * @brief m_mutex               замок на буфер для будущих точек m_pendingValues для потоков
     */
    QMutex m_mutex;

    /**
     * @brief m_boundingRect        область отображения графика
     */
    QRectF m_boundingRect;
    /**
     * @brief m_pendingValues       вектор будущих точек
     */
    QVector<QPointF> m_pendingValues;
    /**
     * @brief append                метод для добавления точек в буфер
     * @param sample                точка
     */
    void append(const QPointF &sample);
    /**
     * @brief m_number              номер экземпляра PrivateData
     */
    int m_number;
private:



};

#endif // PRIVATEDATA_H
